home *** CD-ROM | disk | FTP | other *** search
/ 220 Jogos / 220 jogos.iso / classicos / resta11 / SSnowMan.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-12-24  |  2.7 KB  |  140 lines

  1. // SSnowMan.cpp: Implementierung der Klasse SSnowMan.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4.  
  5. #include "stdafx.h"
  6. #include "stdafx.h"
  7. #include "SSnowMan.h"
  8.  
  9. #ifdef _DEBUG
  10. #undef THIS_FILE
  11. static char THIS_FILE[]=__FILE__;
  12. #define new DEBUG_NEW
  13. #endif
  14.  
  15.  
  16. #define ROT_SPEED 0.1f
  17.  
  18. #define BALL_UNTEN 1.45f
  19. #define BALL_MITTE 1.0f
  20. #define BALL_OBEN 0.650f
  21.  
  22. //////////////////////////////////////////////////////////////////////
  23. // Konstruktion/Destruktion
  24. //////////////////////////////////////////////////////////////////////
  25.  
  26. SSnowMan::SSnowMan()
  27. {
  28.     position[0] = 0.0f;
  29.     position[1] = 0.0f;
  30.     position[2] = 0.0f;
  31.     rotation = 0.0f;
  32. }
  33.  
  34. SSnowMan::~SSnowMan()
  35. {
  36.  
  37. }
  38.  
  39. void SSnowMan::create()
  40. {
  41.     schnee.createMipmap("Data/Schneeman.bmp");
  42.     muetze.createMipmap("Data/Muetze.bmp");
  43.     
  44.     object = gluNewQuadric();
  45.     gluQuadricNormals(object,GL_SMOOTH);
  46.     gluQuadricTexture(object,GL_TRUE);
  47.  
  48.     nase = gluNewQuadric();
  49.     gluQuadricNormals(nase,GL_SMOOTH);
  50.     gluQuadricTexture(nase,GL_FALSE);
  51. }
  52.  
  53. void SSnowMan::update(float frametime)
  54. {
  55.     rotation += ROT_SPEED*frametime;
  56.  
  57.     glPushMatrix();
  58.     
  59.     //Standard Position
  60.     glTranslatef(position[0],position[1]+BALL_UNTEN,position[2]);
  61.     glRotatef(rotation,0.0f,1.0f,0.0f);
  62.     
  63.     //***Schneeman***
  64.     // (3 Kugeln)
  65.  
  66.     glColor3f(1.0f,1.0f,1.0f);
  67.  
  68.     schnee.select();
  69.     gluSphere(object,BALL_UNTEN,30,30);
  70.  
  71.     glTranslatef(0.0,BALL_UNTEN+BALL_MITTE,0.0f);
  72.     gluSphere(object,BALL_MITTE,30,30);
  73.  
  74.     glTranslatef(0.0f,BALL_MITTE+BALL_OBEN,0.0f);
  75.  
  76.     gluSphere(object,BALL_OBEN,30,30);
  77.     
  78.     //****MUETZE*****
  79.  
  80.     glEnable(GL_BLEND);
  81.  
  82.     muetze.select();
  83.  
  84.     glBegin(GL_QUADS);
  85.         glNormal3f(0.0f,0.0f,1.0f);
  86.         glColor3f(1.0,1.0,1.0);
  87.         glTexCoord2f(0.0,1.0); glVertex3f(0.0,BALL_OBEN+1.0,BALL_OBEN);
  88.         glTexCoord2f(1.0,1.0); glVertex3f(0.0,BALL_OBEN+1.0,-BALL_OBEN);
  89.         glTexCoord2f(1.0,0.0); glVertex3f(0.0,BALL_OBEN-0.45,-BALL_OBEN);
  90.         glTexCoord2f(0.0,0.0); glVertex3f(0.0,BALL_OBEN-0.45,BALL_OBEN);
  91.     glEnd();
  92.  
  93.     glDisable(GL_BLEND);
  94.     
  95.     
  96.  
  97.     glDisable(GL_TEXTURE_2D);
  98.  
  99.     /***/
  100.  
  101.     glTranslatef(BALL_OBEN,0.0,0.0);
  102.     
  103.     //****NASE*****
  104.  
  105.     glColor3f(1.0,0.5,0.0);
  106.     glRotatef(90.0f,0.0f,1.0f,0.0f);
  107.     gluCylinder(nase,0.1,0.0,0.15,15,15);
  108.  
  109.     glEnable(GL_TEXTURE_2D);
  110.     
  111.     //****AUGEN****
  112.  
  113.     //wieder zurⁿck drehen
  114.     glRotatef(-90.0f,0.0f,1.0f,0.0f);
  115.     
  116.     glTranslatef(0.0f,0.25,0.18f);
  117.  
  118.     glColor3f(0.0f,0.0f,0.0f);
  119.     gluSphere(nase,0.05f,15,15);
  120.  
  121.     glTranslatef(0.0f,0.0f,-0.36f);
  122.     gluSphere(nase,0.05f,15,15);
  123.  
  124.     //****MUND****
  125.  
  126.     glTranslatef(0.0f,-0.65f,0.18f);
  127.     gluSphere(nase,0.05f,15,15);
  128.  
  129.     glTranslatef(0.0f,0.10f,0.18f);
  130.     gluSphere(nase,0.05f,15,15);
  131.  
  132.     glTranslatef(0.0f,0.0f,-0.36f);
  133.     gluSphere(nase,0.05f,15,15);
  134.  
  135.     
  136.     //**************
  137.  
  138.     glPopMatrix();
  139. }
  140.